package org.wu.framework.easy.markdown.processor;

import org.wu.framework.easy.markdown.endpoint.EasyMarkDownFieldPoint;
import org.wu.framework.easy.markdown.endpoint.EasyMarkDownPoint;

/**
 * 处理 Map 对象导出markdown
 */
public class MapBeanEasyMarkDownProcessor extends AbstractEasyMarkDownProcessor
        implements EasyMarkDownProcessor {


    /**
     * 是否支持excel 处理
     *
     * @param markdownBeanList markdown 对象
     * @return boolean
     */
    @Override
    public boolean support(Object markdownBeanList) {
        return false;
    }

    /**
     * 获取 markdown结构信息
     *
     * @param markDownBean markdown对象（集合或者单个）
     * @return markdown结构信息
     */
    @Override
    public EasyMarkDownPoint findEasyMarkDownPoint(Object markDownBean) {
        return null;
    }


    /**
     * Get the order value of this object.
     * <p>Higher values are interpreted as lower priority. As a consequence,
     * the object with the lowest value has the highest priority (somewhat
     * analogous to Servlet {@code load-on-startup} values).
     * <p>Same order values will result in arbitrary sort positions for the
     * affected objects.
     *
     * @return the order value
     * @see #HIGHEST_PRECEDENCE
     * @see #LOWEST_PRECEDENCE
     */
    @Override
    public int getOrder() {
        return 0;
    }

    /**
     * 获取对象中的某个字段
     *
     * @param easyMarkDownFieldPoint 字段数据结构
     * @param markdownBean           对象
     * @return 返回 bean中字段数据
     */
    @Override
    Object invokeFieldValue(EasyMarkDownFieldPoint easyMarkDownFieldPoint, Object markdownBean) {
        return null;
    }

    /**
     * 如果返回的字段是一个List或者返回对象中某个字段是List 那么递归获取对象中第一个集合的长度和
     *
     * @param easyMarkDownFieldPoint 字段数据结构
     * @param markdownBean           对象
     * @return 获取对象中第一个集合的长度和
     */
    @Override
    int sumFieldListLength(EasyMarkDownFieldPoint easyMarkDownFieldPoint, Object markdownBean) {
        return 0;
    }
}
